home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-04 / inter36b.zip / PORTS.LST < prev    next >
File List  |  1993-08-01  |  66KB  |  1,885 lines

  1. [This file was provided by Wim Osterholt (2:512/56.198).]
  2. Last Change: 8/1/93
  3.  
  4.  
  5.  
  6.         XT, AT and PS/2  I/O port addresses
  7.  
  8.       Do NOT consider this information as complete and accurate.
  9.       If you want to do harware programming check ALWAYS the
  10.       appropriate data sheets. Be aware that erroneously programming
  11.       can put your hardware or your data at risk. 
  12.  
  13.  
  14. -------------------------------------------------------------------------------
  15. 0000-001F ----    DMA 1    (first Direct Memory Access controller 8237)
  16.  
  17. 0000    r/w    DMA channel 0  address    byte  0, then byte 1.
  18. 0001    r/w    DMA channel 0 word count byte 0, then byte 1.
  19. 0002    r/w    DMA channel 1  address    byte  0, then byte 1.
  20. 0003    r/w    DMA channel 1 word count byte 0, then byte 1.
  21. 0004    r/w    DMA channel 2  address    byte  0, then byte 1.
  22. 0005    r/w    DMA channel 2 word count byte 0, then byte 1.
  23. 0006    r/w    DMA channel 3  address    byte  0, then byte 1.
  24. 0007    r/w    DMA channel 3 word count byte 0, then byte 1.
  25.  
  26. 0008    r    DMA channel 0-3 status register
  27.          bit 7 = 1  channel 3 request
  28.          bit 6 = 1  channel 2 request
  29.          bit 5 = 1  channel 1 request
  30.          bit 4 = 1  channel 0 request
  31.          bit 3 = 1  channel terminal count on channel 3
  32.          bit 2 = 1  channel terminal count on channel 2
  33.          bit 1 = 1  channel terminal count on channel 1
  34.          bit 0 = 1  channel terminal count on channel 0
  35.  
  36. 0008    w    DMA channel 0-3 command register
  37.          bit 7 = 1  DACK sense active high
  38.                = 0  DACK sense active low
  39.          bit 6 = 1  DREQ sense active high
  40.                = 0  DREQ sense active low
  41.          bit 5 = 1  extended write selection
  42.                = 0  late write selection
  43.          bit 4 = 1  rotating priority
  44.                = 0  fixed priority
  45.          bit 3 = 1  compressed timing
  46.                = 0  normal timing
  47.          bit 2 = 1  enable controller
  48.                = 0  enable memory-to-memory
  49.  
  50. 0009    w    DMA write request register
  51.  
  52. 000A    r/w    DMA channel 0-3 mask register
  53.          bit 7-3 = 0   reserved
  54.          bit 2     = 0   clear mask bit
  55.              = 1   set mask bit
  56.          bit 1-0 = 00  channel 0 select
  57.              = 01  channel 1 select
  58.              = 10  channel 2 select
  59.              = 11  channel 3 select
  60.  
  61. 000B    w    DMA channel 0-3 mode register
  62.          bit 7-6 = 00  demand mode
  63.              = 01  single mode
  64.              = 10  block mode
  65.              = 11  cascade mode
  66.          bit 5     = 0   address increment select
  67.              = 1   address decrement select
  68.          bit 3-2 = 00  verify operation
  69.              = 01  write to memory
  70.              = 10  read from memory
  71.              = 11  reserved
  72.          bit 1-0 = 00  channel 0 select
  73.              = 01  channel 1 select
  74.              = 10  channel 2 select
  75.              = 11  channel 3 select
  76.  
  77. 000C    w    DMA clear byte pointer flip-flop
  78. 000D    r    DMA read temporary register
  79. 000D    w    DMA master clear
  80. 000E    w    DMA clear mask register
  81. 000F    w    DMA write mask register
  82.  
  83.  
  84. -------------------------------------------------------------------------------
  85. 0010-001F ----    DMA controller (8237) on PS/2 model 60 & 80
  86.  
  87.  
  88. -------------------------------------------------------------------------------
  89. 0018    w    PS/2 extended function register
  90.  
  91.  
  92. -------------------------------------------------------------------------------
  93. 001A        PS/2 extended function execute
  94.  
  95.  
  96. -------------------------------------------------------------------------------
  97. 0020-003F ----    PIC 1    (Programmable Interrupt Controller 8259)
  98.  
  99. 0020    w    PIC initialization command word ICW1
  100.          bit 7-5 = 0  only used in 80/85 mode
  101.          bit 4     = 1  ICW1 is being issued
  102.          bit 3     = 0  edge triggered mode
  103.              = 1  level triggered mode
  104.          bit 2     = 0  successive interrupt vectors use 8 bytes
  105.              = 1  successive interrupt vectors use 4 bytes
  106.          bit 1     = 0  cascade mode
  107.              = 1  single mode, no ICW3 needed
  108.          bit 0     = 0  no ICW4 needed
  109.              = 1  ICW4 needed
  110.  
  111. 0021    w    PIC  ICW2,ICW3,ICW4 after ICW1 to 0020
  112.         ICW2:
  113.          bit 7-3 = address lines A0-A3 of base vector address for PIC
  114.          bit 2-0 = reserved
  115.         ICW3:
  116.          bit 7-0 = 0  slave controller not attached to corresponding
  117.                   interrupt pin
  118.              = 1  slave controller attached to corresponding
  119.                   interrupt pin
  120.         ICW4:
  121.          bit 7-5 = 0  reserved
  122.          bit 4     = 0  no special fully-nested mode
  123.              = 1  special fully-nested mode
  124.          bit 3-2 = 0x nonbuffered mode
  125.              = 10 buffered mode/slave
  126.              = 11 buffered mode/master
  127.          bit 1     = 0  normal EOI
  128.              = 1  Auto EOI
  129.          bit 0     = 0  8085 mode
  130.              = 1  8086/8088 mode
  131.  
  132. 0021    r/w    PIC master interrupt mask register
  133.         OCW1:
  134.          bit 7 = 0  enable parallel printer interrupt
  135.          bit 6 = 0  enable diskette interrupt
  136.          bit 5 = 0  enable fixed disk interrupt
  137.          bit 4 = 0  enable serial port 1 interrupt
  138.          bit 3 = 0  enable serial port 2 interrupt
  139.          bit 2 = 0  enable video interrupt
  140.          bit 1 = 0  enable keyboard, mouse, RTC interrupt
  141.          bit 0 = 0  enable timer interrupt
  142.         OCW2:
  143.          bit 7-5 = 000    rotate in auto EOI mode (clear)
  144.              = 001    nonspecific EOI
  145.              = 010    no operation
  146.              = 011    specific EOI
  147.              = 100    rotate in auto EOI mode (set)
  148.              = 101    rotate on nonspecific EOI command
  149.              = 110    set priority command
  150.              = 111    rotate on specific EOI command
  151.          bit 4     = 0    reserved
  152.          bit 3     = 0    reserved
  153.          bit 2-0    interrupt request to which the command applies
  154.  
  155. 0020    r    PIC  interrupt request/in-service registers by OCW3
  156.         request register:
  157.          bit 7-0 = 0  no active request for the corresponding int. line
  158.              = 1  active request for corresponding interrupt line
  159.         in-service register:
  160.          bit 7-0 = 0  corresponding line not currently being serviced
  161.              = 1  corresponding int. line currently being serviced
  162.  
  163. 0020    w    PIC OCW3
  164.          bit 7     = 0   reserved
  165.          bit 6-5 = 0x  no operation
  166.              = 10  reset special mask
  167.              = 11  set special mask
  168.          bit 4     = 0   reserved
  169.          bit 3     = 1   reserved
  170.          bit 2     = 0   no poll command
  171.              = 1   poll command
  172.          bit 1-0 = 0x  no operation
  173.              = 10  read int.request register on next read at 0020
  174.              = 11  read int.in-service register on next read 0020
  175.  
  176. -------------------------------------------------------------------------------
  177. 0022-002B ----    Intel 82355, part of chipset for 386sx
  178.          initialisation in POST will disable these addresses,
  179.          only a hard reset will enable them again.
  180.  
  181. 0022    r/w    82335 MCR memory configuration register
  182. 0024        82335 RC1 roll compare register
  183. 0026        82335 RC2 roll compare register
  184. 0028        82335 CC0 compare register
  185. 002A        82335 CC1 compare register
  186.  
  187.           values for CC0 and CC1:
  188.           00F9,0000  enable range compare CC0 0-512K  CC1 disable
  189.           00F1,0000  enable range compare CC0 0-1024K CC1 disable
  190.           00F1,10F9  enable range compare CC0 0-1M    CC1 1M-1M5
  191.           00E1,0000  enable range compare CC0 0-2M    CC1 disable
  192.           00E1,0000  enable range compare CC0 0-2M    CC1 disable
  193.           00C1,0000  enable range compare CC0 0-4M    CC1 disable
  194.           00C1,40E1  enable range compare CC0 0-4M    CC1 4M-6M
  195.           0081,0000  enable range compare CC0 0-8M    CC1 disable
  196.  
  197.  
  198. -------------------------------------------------------------------------------
  199. 0040-005F ----    PIT  (Programmable Interrupt Timer  8253, 8254)
  200.          XT & AT uses 40-43    PS/2 uses 40, 42,43,44, 47
  201.  
  202. 0040    r/w    PIT  counter 0, counter divisor       (XT, AT, PS/2)
  203. 0041    r/w    PIT  counter 1, RAM refresh counter   (XT, AT)
  204. 0042    r/w    PIT  counter 2, cassette & speaker    (XT, AT, PS/2)
  205.  
  206. 0043    r/w    PIT  mode port, control word register for counters 0-2
  207.          bit 7-6 = 00  counter 0 select
  208.              = 01  counter 1 select   (not PS/2)
  209.              = 10  counter 2 select
  210.          bit 5-4 = 00  counter latch command
  211.              = 01  read/write counter bits 0-7 only
  212.              = 10  read/write counter bits 8-15 only
  213.              = 11  read/write counter bits 0-7 first, then 8-15
  214.          bit 3-0 = 000 mode 0 select
  215.              = 001 mode 1 select - programmable one shot
  216.              = x10 mode 2 select - rate generator
  217.              = x11 mode 3 select - square wave generator
  218.              = 100 mode 4 select - software triggered strobe
  219.              = 101 mode 5 select - hardware triggered strobe
  220.          bit 0     = 0   binary counter 16 bits
  221.              = 1   BCD counter
  222.  
  223. 0044    r/w    PIT  counter 3 (PS/2, EISA)
  224.         used as fail-safe timer. generates an NMI on time out.
  225.         for user generated NMI see at 0462.
  226.  
  227. 0047    w    PIT  control word register counter 3 (PS/2, EISA)
  228.          bit 7-6 = 00  counter 3 select
  229.              = 01  reserved
  230.              = 10  reserved
  231.              = 11  reserved
  232.          bit 5-4 = 00  counter latch command counter 3
  233.              = 01  read/write counter bits 0-7 only
  234.              = 1x  reserved
  235.          bit 3-0 = 00
  236.  
  237. 0048        EISA
  238. 004A        EISA
  239. 004B        EISA
  240.  
  241. -------------------------------------------------------------------------------
  242. 0060-006F ----    Keyboard controller (8041, 8042)  (or PPI (8255) on XT)
  243.          XT uses 60-63,  AT uses 60-64
  244.  
  245.          AT keyboard controller input port bit definitions
  246.           bit 7   = 0  keyboard inhibited
  247.           bit 6   = 0  CGA, else MDA
  248.           bit 5   = 0  manufacturing jumper installed
  249.           bit 4   = 0  system RAM 512K, else 640K
  250.           bit 3-0      reserved
  251.  
  252.          AT keyboard controller output port bit definitions
  253.           bit 7 =    keyboard data output
  254.           bit 6 =    keyboard clock output
  255.           bit 5 = 0  input buffer full
  256.           bit 4 = 0  output buffer empty
  257.           bit 3 =    reserved (see note)
  258.           bit 2 =    reserved (see note)
  259.           bit 1 =    gate A20
  260.           bit 0 =    system reset
  261.         Note:    bits 2 and 3 are the turbo speed switch or password
  262.               lock on Award/AMI/Phoenix BIOSes.  These bits make
  263.               use of nonstandard keyboard controller BIOS
  264.               functionality to manipulate
  265.                 pin 23 (8041 port 22) as turbo switch for AWARD
  266.                 pin 35 (8041 port 15) as turbo switch/pw lock for
  267.                 Phoenix
  268.  
  269. 0060    r/w    KB controller data port or keyboard input buffer (ISA, EISA)
  270.         should only be read from after status port bit0 = 1
  271.         should only be written to if status port bit1 = 0
  272.         keyboard commands (data goes also to port 0060):
  273.          ED    dbl   set/reset mode indicators Caps Num Scrl
  274.          EE    sngl  diagnostic echo. returns EE.
  275.          EF-F2    sngl  NOP (No OPeration). reserved for future use
  276.          F3    dbl   set typematic rate/delay
  277.          F4    sngl  enable keyboard
  278.          F5    sngl  disable keyboard. set default parameters
  279.          F6    sngl  set default parameters
  280.          F7-FD    sngl  NOP
  281.          FE    sngl  resend last scancode
  282.          FF    sngl  perform internal power-on reset function
  283.  
  284.  
  285. 0060    r    KeyBoard or KB controller data output buffer (via PPI on XT)
  286.  
  287. 0061    w    KB controller port B (ISA, EISA)   (PS/2 port A is at 0092)
  288.         system control port for compatibility with 8255
  289.          bit 7    (1= IRQ 0 reset )
  290.          bit 6-4    reserved
  291.          bit 3 = 1  channel check enable
  292.          bit 2 = 1  parity check enable
  293.          bit 1 = 1  speaker data enable
  294.          bit 0 = 1  timer 2 gate to speaker enable
  295.  
  296. 0061    r    KB controller port B control register (ISA, EISA)
  297.         system control port for compatibility with 8255
  298.          bit 7     parity check occurred
  299.          bit 6     channel check occurred
  300.          bit 5     mirrors timer 2 output condition
  301.          bit 4     toggles with each refresh request
  302.          bit 3     channel check status
  303.          bit 2     parity check status
  304.          bit 1     speaker data status
  305.          bit 0     timer 2 gate to speaker status
  306.  
  307. 0061    w    PPI  Programmable Peripheral Interface 8255 (XT only)
  308.         system control port
  309.          bit 7 = 1  clear keyboard
  310.          bit 6 = 0  hold keyboard clock low
  311.          bit 5 = 0  I/O check enable
  312.          bit 4 = 0  RAM parity check enable
  313.          bit 3 = 0  read low switches
  314.          bit 2        reserved, often used as turbo switch
  315.          bit 1 = 1  speaker data enable
  316.          bit 0 = 1  timer 2 gate to speaker enable
  317.  
  318. 0062    r/w    PPI (XT only)
  319.          bit 7 = 1  RAM parity check
  320.          bit 6 = 1  I/O channel check
  321.          bit 5 = 1  timer 2 channel out
  322.          bit 4        reserved 
  323.          bit 3 = 1  system board RAM size type 1
  324.          bit 2 = 1  system board RAM size type 2
  325.          bit 1 = 1  coprocessor installed
  326.          bit 0 = 1  loop in POST
  327.  
  328. 0063    r/w    PPI (XT only) command mode register  (read dipswitches)
  329.          bit 7-6 = 00  1 diskette drive
  330.              = 01  2 diskette drives
  331.              = 10  3 diskette drives
  332.              = 11  4 diskette drives
  333.          bit 5-4 = 00  reserved
  334.              = 01  40*25 color (mono mode)
  335.              = 10  80*25 color (mono mode)
  336.              = 11  MDA 80*25
  337.          bit 3-2 = 00  256K (using 256K chips)
  338.              = 01  512K (using 256K chips)
  339.              = 10  576K (using 256K chips)
  340.              = 11  640K (using 256K chips)
  341.          bit 3-2 = 00  64K  (using 64K chips)
  342.              = 01  128K (using 64K chips)
  343.              = 10  192K (using 64K chips)
  344.              = 11  256K (using 64K chips)
  345.          bit 1-0       reserved
  346.  
  347. 0064    r    KB controller read status (ISA, EISA)
  348.          bit 7 = 1 parity error on transmission from keyboard
  349.          bit 6 = 1 receive timeout
  350.          bit 5 = 1 transmit timeout
  351.          bit 4 = 0 keyboard inhibit
  352.          bit 3 = 1 data in input register is command
  353.              0 data in input register is data
  354.          bit 2 = 0 system flag status 0=power up or reset 1=selftest OK
  355.          bit 1 = 1 input buffer full (input 60/64 has data for 8042)
  356.          bit 0 = 1 output buffer full (output 60 has data for system)
  357.  
  358. 0064    w    KB controller input buffer (ISA, EISA)
  359.         KB controller commands (data goes to port 0060):
  360.          20    read  read byte zero of internal RAM, this is the
  361.                   last KB command send to 8041
  362.          21-3F    read  reads the byte specified in the lower 5 bits of
  363.                   the command in the 8041's internal RAM
  364.          60-7F    dbl   writes the data byte to the address specified in
  365.                   the 5 lower bits of the command.
  366.  
  367.                   Alternate description KB IO command 60 summary:
  368.                    bit7 = 0 reserved
  369.                    bit6 =    IBM PC compatibility mode
  370.                    bit5 =    IBM PC mode
  371.                    bit4 =    disable kb
  372.                    bit3 =    inhibit override
  373.                    bit2 =    system flag
  374.                    bit1 = 0 reserved
  375.                    bit0 =    enableoutput buffer full interrupt
  376.  
  377.          AA    sngl  initiate self-test. will return 55 to data port
  378.          AB    sngl  initiate interface test. result values:
  379.                    0 = no error
  380.                    1 = keyboard clock line stuck low
  381.                    2 = keyboard clock line stuck high
  382.                    3 = keyboard data line is stuck low
  383.                    4 = keyboard data line stuck high
  384.          AC    read  diagnostic dump. the contents of the 8041 RAM,
  385.                   output port, input port, status word are send.
  386.          AD    sngl  disable keyboard
  387.          AE    sngl  enable keyboard
  388.          AF    AWARD Enhanced Command: read keyboard version
  389.          C0    read  read input port
  390.          C1    AWARD Enhanced Command: poll input port Low nibble
  391.          C2    AWARD Enhanced Command: poll input port High nibble
  392.          D0    read  read output port
  393.          D1    dbl   write output port. next byte written  to 0060
  394.                   will be written to the 8041 output port
  395.          D2    AWARD Enhanced Command: write keyboard output buffer
  396.          D3    AWARD Enhanced Command: write pointing device out.buf.
  397.          D4    AWARD Enhanced Command: write to auxiliary device
  398.          DD    sngl  disable address line A20. default in Real Mode
  399.          DF    sngl  enable address line A20
  400.          E0    read  read test inputs. bit0 = T0 and bit1 = T1
  401.          Exxx    AWARD Enhanced Command: active output port
  402.          F0-FF    sngl  pulse output port low for 6 microseconds.
  403.                   bits 0-3 contain the mask for the bits to be
  404.                   pulsed. a bit is pulsed if it's mask bit is
  405.                   zero.
  406.  
  407. 0065    r    communications port (Olivetti M24)
  408.  
  409. 0068    w    HP-Vectra  control buffer (HP commands)
  410. 0069    r    HP-Vectra  SVC (keyboard request SerViCe port)
  411. 006A    w    HP-Vectra  clear processing, done
  412.  
  413. 006C-006F    HP-HIL    (Human Interface Link = async. serial inputs 0-7)
  414.  
  415.  
  416. -------------------------------------------------------------------------------
  417. 0070-007F ----    CMOS RAM/RTC (Real Time Clock  MC146818)
  418.  
  419. 0070    w    CMOS RAM index register port (ISA, EISA)
  420.          bit 7     = 1  NMI disabled
  421.              = 0  NMI enabled
  422.          bit 6-0      CMOS RAM index (64 bytes, sometimes 128 bytes)
  423.  
  424.         any write to 0070 should be followed by an action to 0071
  425.         or the RTC wil be left in an unknown state.
  426.  
  427. 0071    r/w    CMOS RAM data port (ISA, EISA)
  428.         RTC registers:
  429.         00    current second in BCD
  430.         01    alarm second   in BCD
  431.         02    current minute in BCD
  432.         03    alarm minute   in BCD
  433.         04    current hour in BCD
  434.         05    alarm hour   in BCD
  435.         06    day of week  in BCD
  436.         07    day of month in BCD
  437.         08    month in BCD
  438.         09    year  in BCD (00-99)
  439.         0A    status register A
  440.                bit 7 = 1  update in progress
  441.                bit 6-4 divider that identifies the time-based
  442.                 frequency
  443.                bit 3-0 rate selection output  frequency and int. rate
  444.         0B    status register B
  445.                bit 7 = 0  run
  446.                  = 1  halt
  447.                bit 6 = 1  enable periodic interrupt
  448.                bit 5 = 1  enable alarm interrupt
  449.                bit 4 = 1  enable update-ended interrupt
  450.                bit 3 = 1  enable square wave interrupt
  451.                bit 2 = 1  calendar is in binary format
  452.                  = 0  calendar is in BCD format
  453.                bit 1 = 1  24-hour mode
  454.                  = 0  12-hour mode
  455.                bit 0 = 1  enable daylight savings time. only in USA.
  456.                   useless in Europe. Some DOS versions clear
  457.                   this bit when you use the DAT/TIME command.
  458.         0C    status register C
  459.                bit 7 =      interrupt request flag
  460.                bit 6 =      peridoc interrupt flag
  461.                bit 5 =      alarm interrupt flag
  462.                bit 4 =      update interrupt flag
  463.                bit 3-0      reserved
  464.         0D    status register D
  465.                bit 7 = 1  Real-Time Clock has power
  466.                bit 6-0      reserved
  467.         0E    diagnostics status byte
  468.                bit 7 = 0  RTC lost power
  469.                bit 6 = 1  CMOS RAM checksum bad
  470.                bit 5 = 1  invalid configuration information at POST
  471.                bit 4 = 1  memory size error at POST
  472.                bit 3 = 1  fixed disk/adapter failed initialization
  473.                bit 2 = 1  CMOS RAM time found invalid
  474.                bit 1 = 1  adapters do not match configuration (EISA)
  475.                bit 0 = 1  time out reading an adapter ID (EISA)
  476.         0F    shutdown status byte
  477.                00 = normal execution of POST
  478.                01 = chip set initialization for real mode reentry
  479.                04 = jump to bootstrap code
  480.                05 = issue an EOI an JMP to Dword ptr at 40:67
  481.                06 = JMP to Dword ptrv at 40:67 without EOI
  482.                07 = return to INT15/87 (block move)
  483.                08 = return to POST memory test
  484.                09 = return to INT15/87 (block move)
  485.                0A = JMP to Dword ptr at 40:67 without EOI
  486.                0B = return IRETS through 40:67
  487.         10    diskette drive type for A: and B:
  488.                bit 7-4    drive type of drive 0
  489.                bit 3-0    drive type of drive 1
  490.                    = 0000       no drive
  491.                    = 0001       360K
  492.                    = 0010       1M2
  493.                    = 0011       720K
  494.                    = 0100       1M44
  495.                    = 0101-1111 reserved
  496.         11    reserved / AMI Extended CMOS setup (AMI Hi-Flex BIOS)
  497.                bit 7   = 1     Typematic Rate Programming
  498.                bit 6-5 = 00    Typematic Rate Delay 250 mSec
  499.                bit 4-0 = 00011 Typematic Rate 21.8 Chars/Sec
  500.         12    fixed disk drive type for drive 0 and drive 1
  501.                bit 7-4    drive type of drive 0
  502.                bit 3-0    drive type of drive 1
  503.                 if either of the nibbles equals 0F, then bytes
  504.                 19 an 1A are valid
  505.         13    reserved / AMI Extended CMOS setup (AMI Hi-Flex BIOS)
  506.                bit 7 = 1  Mouse Support Option
  507.                bit 6 = 1  Above 1 MB Memory Test disable
  508.                bit 5 = 1  Memory Test Tick Sound disable
  509.                bit 4 = 1  Memory Parity Error Check enable
  510.                bit 3 = 1  Hit <ESC> Message Display disabled
  511.                bit 2 = 1  Hard Disk Type 47 Data Area at address 0:300
  512.                bit 1 = 1  Wait For <F1> If Any Error enabled
  513.                bit 0 = 1  System Boot Up Num Lock is On
  514.         14    equipment byte
  515.                bit 7-6     diskette drives installed
  516.                    = 00  1 drive installed
  517.                    = 01  2 drives installed
  518.                    = 10  reserved
  519.                    = 11  reserved
  520.                bit 5-4     primary display
  521.                    = 00  adapter card with option ROM 
  522.                    = 01  40*25 color
  523.                    = 10  80*25 color
  524.                    = 11  monochrome
  525.                bit 3-2     reserved
  526.                bit 1   = 1  coprocessor installed (non-Weitek)
  527.                bit 0        diskette drive avaliable for boot
  528.         15    LSB of systemn base memory in Kb
  529.         16    MSB of systemn base memory in Kb
  530.         17    LSB of total extended memory in Kb
  531.         18    MSB of total extended memory in Kb
  532.         19    drive C extension byte
  533.         1A    drive D extension byte
  534.         1B-27 reserved
  535.         1B/1C word to 82335 RC1 roll compare register at [24]
  536.             (Phoenix)
  537.         1D/1E word to 82335 RC2 roll compare register at [26]
  538.             (Phoenix)
  539.         28    HP-Vectra checksum over 29-2D
  540.         29-2D reserved
  541.         29/2A word to Intel 82335 CC0 compare register at
  542.             [28](Phoenix)
  543.         2B/2C word send to 82335 CC1 compare register at [2A]
  544.             (Phoenix)
  545.         2D    AMI Extended CMOS setup (AMI Hi-Flex BIOS)
  546.               (Phoenix BIOS checks for the values AA or CC)
  547.                bit 7 = 1  Weitek Processor Absent
  548.                bit 6 = 1  Floppy Drive Seek At Boot disabled
  549.                bit 5 = 1  System Boot Up Sequence  C:, A:
  550.                bit 4 = 1  System Boot Up Speed is high
  551.                bit 3 = 1  Cache Memory enabled
  552.                bit 2 = 1  Internal Cache Memory  <1>
  553.                bit 1-0      reserved
  554.         2E    CMOS MSB checksum over 10-2D
  555.         2F    CMOS LSB checksum over 10-2D
  556.         30    LSB of extended memory found above 1Mb at POST
  557.         31    MSB of extended memory found above 1Mb at POST
  558.         32    date century in BCD
  559.         33    information flags
  560.                bit4 = bit4 from CPU register CR0   (Phoenix)
  561.                   this bit is only known as INTEL RESERVED
  562.         34-3F reserved    
  563.         34     bit4 bit5 (Phoenix BIOS)
  564.         3D/3E word to 82335 MCR memory config register at
  565.             [22](Phoenix)
  566.         3D     bit3     base memsize 512/640  (Phoenix)
  567.         3E     bit7 = 1  relocate enable       (Phoenix)
  568.                bit1 = 1  shadow video enable   (Phoenix)
  569.                bit0 = 1  shadow BIOS enable    (Phoenix)
  570.  
  571.  
  572.         User Definable Drive Parameters are also stored in CMOS RAM:
  573.  
  574.         AMI (386sx BIOS 1989) first user definable drive (type 47)
  575.          1B  L cylinders
  576.          1C  H cylinders
  577.          1D  heads
  578.          1E  L Write Precompensation Cylinder
  579.          1F  H Write Precompensation Cylinder
  580.          20  ??
  581.          21  L cylinders parking zone
  582.          22  H cylinders parking zone
  583.          23  sectors
  584.  
  585.         AMI (386sx BIOS 1989) second user definable drive (type 48)
  586.          24  L cylinders
  587.          25  H cylinders
  588.          26  heads
  589.          27  L Write Precompensation Cylinder
  590.          28  H Write Precompensation Cylinder
  591.          29  ??
  592.          2A  L cylinders parking zone
  593.          2B  H cylinders parking zone
  594.          2C  sectors
  595.  
  596.         Phoenix (386BIOS v1.10.03 1988) 1st user definable drv (type48)
  597.          20  L cylinders
  598.          21  H cylinders
  599.          22  heads
  600.          23  L Write Precompensation Cylinder
  601.          24  H Write Precompensation Cylinder
  602.          25  L cylinders parking zone
  603.          26  H cylinders parking zone
  604.          27  sectors
  605.  
  606.         Phoenix (386BIOS v1.10.03 1988) 2nd user definable drv (type49)
  607.         (when PS/2-style password option is not used)
  608.          35  L cylinders
  609.          36  H cylinders
  610.          37  heads
  611.          38  L Write Precompensation Cylinder
  612.          39  H Write Precompensation Cylinder
  613.          3A  L cylinders parking zone
  614.          3B  H cylinders parking zone
  615.          3C  sectors
  616.  
  617. 0078        HP-Vectra  Hard Reset: NMI enable/disable
  618.          bit 7 = 0  disable & clear hard reset from HP-HIL controller
  619.                = 1  enable hard reset from HP-HIL controller chip
  620.          bit 6-0    reserved
  621.  
  622.  
  623. -------------------------------------------------------------------------------
  624. 007C-007D ----    HP-Vectra  PIC 3   (Programmable Interrupt Controller 8259)
  625.         cascaded to first controller.
  626.         used for keyboard and input device interface.
  627. 007C    r/w    HP-Vectra  PIC 3  see at 0020  PIC 1
  628. 007D    r/w    HP-Vectra  PIC 3  see at 0021  PIC 1
  629.  
  630.  
  631. -------------------------------------------------------------------------------
  632. 0080    w    Manufacturing Diagnostics port
  633.  
  634.  
  635. -------------------------------------------------------------------------------
  636. 0080-008F ----    DMA page registers   (74612)
  637.  
  638. 0080    r/w    extra page register (temporary storage)
  639. 0081    r/w    DMA channel 2 address byte 2
  640. 0082    r/w    DMA channel 3 address byte 2
  641. 0083    r/w    DMA channel 1 address byte 2
  642. 0084    r/w    extra page register
  643. 0085    r/w    extra page register
  644. 0086    r/w    extra page register
  645. 0087    r/w    DMA channel 0 address byte 2
  646. 0088    r/w    extra page register
  647. 0089    r/w    DMA channel 6 address byte 2
  648. 0089    r/w    DMA channel 7 address byte 2
  649. 0089    r/w    DMA channel 5 address byte 2
  650. 008C    r/w    extra page register
  651. 008D    r/w    extra page register
  652. 008E    r/w    extra page register
  653. 008F    r/w    DMA refresh page register
  654.  
  655. -------------------------------------------------------------------------------
  656. 0090-009F ----    PS/2 POS (Programmable Option Select)
  657.  
  658. 0090        Central arbitration control port
  659. 0091        Card selection feedback
  660.  
  661. 0092    r/w    PS/2 system control port A  (port B is at 0061)
  662.          bit 7-6   any bit set to 1 turns activity light on
  663.          bit 5       reserved
  664.          bit 4 = 1 watchdog timout occurred 
  665.          bit 3 = 0 RTC/CMOS security lock (on password area) unlocked
  666.                = 1 CMOS locked (done by POST)
  667.          bit 2       reserved
  668.          bit 1 = 1 indicates A20 active
  669.          bit 0 = 0 system reset or write
  670.              1 pulse alternate reset pin (alternate CPU reset)
  671.  
  672. 0094    w    system board enable/setup register
  673.          bit 7 = 1  enable functions
  674.                = 0  setup functions
  675.          bit 5 = 1  enables VGA
  676.                = 0  setup VGA
  677.  
  678. 0095        reserved
  679.  
  680. 0096    w    adapter enable /setup register
  681.          bit 3 = 1  setup adapters
  682.                = 0  enable registers
  683.  
  684. 0097        reserved
  685.  
  686.  
  687. -------------------------------------------------------------------------------
  688. 00A0-00AF ----    PIC 2    (Programmable Interrupt Controller 8259)
  689.  
  690. 00A0    r/w    NMI mask register (XT)
  691.  
  692. 00A0    r/w    PIC 2  same as 0020 for PIC 1
  693. 00A1    r/w    PIC 2  same as 0021 for PIC 1 except for OCW1:
  694.          bit 7 = 0  reserved
  695.          bit 6 = 0  enable fixed disk interrupt
  696.          bit 5 = 0  enable coprocessor exception interrupt
  697.          bit 4 = 0  enable mouse interrupt
  698.          bit 3 = 0  reserved
  699.          bit 2 = 0  reserved
  700.          bit 1 = 0  enable redirect cascade
  701.          bit 0 = 0  enable real-time clock interrupt
  702.  
  703.  
  704. -------------------------------------------------------------------------------
  705. 00C0      ----    TI  SN746496 programmable tone/noise generator    PCjr
  706.  
  707.  
  708. -------------------------------------------------------------------------------
  709. 00C0-00DF ----    DMA 2    (second Direct Memory Access controller 8237)
  710.  
  711. 00C0    r/w    DMA channel 4 memory address bytes 1 and 0 (low) (ISA, EISA)
  712. 00C2    r/w    DMA channel 4 transfer count bytes 1 and 0 (low) (ISA, EISA)
  713. 00C4    r/w    DMA channel 5 memory address bytes 1 and 0 (low) (ISA, EISA)
  714. 00C6    r/w    DMA channel 5 transfer count bytes 1 and 0 (low) (ISA, EISA)
  715. 00C8    r/w    DMA channel 6 memory address bytes 1 and 0 (low) (ISA, EISA)
  716. 00CA    r/w    DMA channel 6 transfer count bytes 1 and 0 (low) (ISA, EISA)
  717. 00CC    r/w    DMA channel 7 memory address byte 0 (low), then 1 (ISA, EISA)
  718. 00CE    r/w    DMA channel 7 transfer count byte 0 (low), then 1 (ISA, EISA)
  719.  
  720. 00D0    r    DMA channel 4-7 status register (ISA, EISA)
  721.          bit 7 = 1  channel 7 request
  722.          bit 6 = 1  channel 6 request
  723.          bit 5 = 1  channel 5 request
  724.          bit 4 = 1  channel 4 request
  725.          bit 3 = 1  terminal count on channel 7
  726.          bit 2 = 1  terminal count on channel 6
  727.          bit 1 = 1  terminal count on channel 5
  728.          bit 0 = 1  terminal count on channel 4
  729.  
  730. 00D0    w    DMA channel 4-7 command register (ISA, EISA)
  731.          bit 7 = 1  DACK sense active high
  732.                = 0  DACK sense active low
  733.          bit 6 = 1  DREQ sense active high
  734.                = 0  DREQ sense active low
  735.          bit 5 = 1  extended write selection
  736.                = 0  late write selection
  737.          bit 4 = 1  rotating priority
  738.                = 0  fixed priority
  739.          bit 3 = 1  compressed timing
  740.                = 0  normal timing
  741.          bit 2 = 0  enable controller
  742.          bit 1 = 1  enable memory-to-memory transfer
  743.          bit 0        .....
  744.  
  745. 00D2    w    DMA channel 4-7 write request register (ISA, EISA)
  746.  
  747. 00D4    w    DMA channel 4-7 write single mask register (ISA, EISA)
  748.          bit 7-3      reserved
  749.          bit 2     = 0  clear mask bit
  750.              = 1  set mask bit
  751.          bit 1-0 = 00 channel 4 select
  752.              = 01 channel 5 select
  753.              = 10 channel 6 select
  754.              = 11 channel 7 select
  755.  
  756. 00D6    w    DMA channel 4-7 mode register (ISA, EISA)
  757.          bit 7-6 = 00  demand mode
  758.              = 01  single mode
  759.              = 10  block mode
  760.              = 11  cascade mode
  761.          bit 5     = 0   address increment select
  762.              = 1   address decrement select
  763.          bit 4     = 0   autoinitialisation disable
  764.              = 1   autoinitialisation enable
  765.          bit 3-2 = 00  verify operation
  766.              = 01  write to memory
  767.              = 10  read from memory
  768.              = 11  reserved
  769.          bit 1-0 = 00  channel 4 select
  770.              = 01  channel 5 select
  771.              = 10  channel 6 select
  772.              = 11  channel 7 select
  773.  
  774. 00D8    w    DMA channel 4-7 clear byte pointer flip-flop (ISA, EISA)
  775. 00DA    r    DMA channel 4-7 read temporary register (ISA, EISA)
  776. 00DA    w    DMA channel 4-7 master clear (ISA, EISA)
  777. 00DC    w    DMA channel 4-7 clear mask register (ISA, EISA)
  778. 00DE    w    DMA channel 4-7 write mask register (ISA, EISA)
  779.  
  780. 00E0        split address register, memory encoding registers PS/2m80 only
  781.  
  782.  
  783. -------------------------------------------------------------------------------
  784. 00F0-00F5 ----    PCjr Disk Controller
  785.  
  786. 00F0        disk controller
  787. 00F2        disk controller control port
  788. 00F4        disk controller status register
  789. 00F5        disk controller data port
  790.  
  791.  
  792. -------------------------------------------------------------------------------
  793. 00F0-00FF ----    coprocessor (8087..80387)
  794.  
  795. 00F0        math coprocessor clear busy latch
  796. 00F1        math coprocessor reset
  797. 00F8-00FF    math coprocessor
  798.  
  799.  
  800. -------------------------------------------------------------------------------
  801. 0100-0107 ----    PS/2 POS (Programmable Option Select)
  802.  
  803. 0100    r    POS register 0    Low adapter ID byte
  804. 0101    r    POS register 1    High adapter ID byte
  805.  
  806. 0102    r/w    POS register 2    option select data byte 1
  807.          bit 0 is card enable (CDEN)
  808.  
  809. 0103    r/w    POS register 3    option select data byte 2
  810. 0104    r/w    POS register 4    option select data byte 3
  811. 0105    r/w    POS register 5    option select data byte 4
  812.          bit 7    channel active (-CHCK)
  813.          bit 6    channel status
  814.  
  815. 0106    r/w    POS register 6    Low subaddress extension
  816. 0107    r/w    POS register 7    High subaddress extension
  817.  
  818.  
  819. -------------------------------------------------------------------------------
  820. 0140-014F ----    SCSI (alternate Small Computer System Interface) adapter
  821.         (1st at 0340-034F)
  822.  
  823.  
  824. -------------------------------------------------------------------------------
  825. 0140-0157 ----    RTC (alternate Real Time Clock for XT)     (1st at 0340-0357)
  826.  
  827.  
  828. -------------------------------------------------------------------------------
  829. 0170-0177 ----    HDC 2    (2nd Fixed Disk Controller)   same as 01Fx (ISA, EISA)
  830.  
  831. -------------------------------------------------------------------------------
  832. 01F0-01F7 ----    HDC 1    (1st Fixed Disk Controller)   same as 017x (ISA, EISA)
  833.  
  834. 01F0    r/w    data register
  835.  
  836. 01F1    r    error register
  837.         diagnostic mode errors:
  838.          bit 7-3    reserved
  839.          bit 2-1 = 001    no error detected
  840.              = 010    formatter device error
  841.              = 011    sector buffer error
  842.              = 100    ECC circuitry error
  843.              = 101    controlling microprocessor error
  844.          operation mode:
  845.           bit 7  = 1  bad block detected
  846.              = 0  block OK
  847.           bit 6  = 1  uncorrectable ECC error
  848.              = 0  no error
  849.           bit 5       reserved
  850.           bit 4  = 1  ID found
  851.              = 0  ID not found
  852.           bit 3       reserved
  853.           bit 2  = 1  command completed
  854.              = 0  command aborted
  855.           bit 1  = 1  track 000 not found
  856.              = 0  track 000 found
  857.           bit 0  = 1  DAM not found
  858.              = 0  DAM found (CP-3022 always 0)
  859.  
  860. 01F1    w    WPC/4  (Write Precompensation Cylinder divided by 4)
  861.  
  862. 01F2    r/w    sector count
  863. 01F3    r/w    sector number
  864. 01F4    r/w    cylinder low
  865. 01F5    r/w    cylinder high
  866.  
  867. 01F6    r/w    drive/head
  868.          bit 7     = 1
  869.          bit 6     = 0
  870.          bit 5     = 1
  871.          bit 4     = 0  drive 0 select
  872.              = 1  drive 1 select
  873.          bit 3-0      head select bits
  874.  
  875. 01F7    r    status register
  876.          bit 7 = 1  controller is executing a command
  877.          bit 6 = 1  drive is ready
  878.          bit 5 = 1  write fault
  879.          bit 4 = 1  seek complete
  880.          bit 3 = 1  sector buffer requires servicing
  881.          bit 2 = 1  disk data read successfully corrected
  882.          bit 1 = 1  index - set to 1 each disk revolution
  883.          bit 0 = 1  previous command ended in an error
  884.  
  885. 01F7    w    command register
  886.         commands:
  887.          98 E5     check power mode    (IDE)
  888.          90     execute drive diagnostics
  889.          50     format track
  890.          EC     identify drive     (IDE)
  891.          97 E3     idle            (IDE)
  892.          95 E1     idle immediatete    (IDE)
  893.          91     initialize drive parameters
  894.          1x     recalibrate
  895.          E4     read buffer        (IDE)
  896.          C8     read DMA with retry    (IDE)
  897.          C9     read DMA without retry (IDE)
  898.          C4     read multiplec     (IDE)
  899.          20     read sectors with retry
  900.          21     read sectors without retry
  901.          22     read long with retry
  902.          23     read long without retry
  903.          40     read verify sectors with retry
  904.          41     read verify sectors without retry
  905.          7x     seek
  906.          EF     set features        (IDE)
  907.          C6     set multiple mode    (IDE)
  908.          99 E6     set sleep mode     (IDE)
  909.          96 E2     standby        (IDE)
  910.          94 E0     standby immediate    (IDE)
  911.          E8     write buffer        (IDE)
  912.          CA     write DMA with retry    (IDE)
  913.          CB     write DMA with retry    (IDE)
  914.          C5     write multiple     (IDE)
  915.          E9     write same        (IDE)
  916.          30     write sectors with retry
  917.          31     write sectors without retry
  918.          32     write long with retry
  919.          33     write long without retry
  920.          3C     write verify        (IDE)
  921.          9A     vendor unique        (IDE)
  922.          C0-C3     vendor unique        (IDE)
  923.          8x     vendor unique        (IDE)
  924.          F0-F4     EATA standard        (IDE)
  925.          F5-FF     vendor unique        (IDE)
  926.  
  927.  
  928. -------------------------------------------------------------------------------
  929. 0200-020F ----    Game port reserved I/O address space  
  930. 0200-0207 ----    Game port, eight identical addresses on some boards
  931.  
  932. 0201    r    read joystick position and status
  933.          bit 7    status B joystick button 2 / D paddle button
  934.          bit 6    status B joystick button 1 / C paddle button
  935.          bit 5    status A joystick button 2 / B paddle button
  936.          bit 4    status A joystick button 1 / A paddle button
  937.          bit 3    B joystick Y coordinate    / D paddle coordinate
  938.          bit 2    B joystick X coordinate    / C paddle coordinate
  939.          bit 1    A joystick Y coordinate    / B paddle coordinate
  940.          bit 0    A joystick X coordinate    / A paddle coordinate
  941.  
  942.     w    fire joysticks four one-shots
  943.  
  944.  
  945. -------------------------------------------------------------------------------
  946. 0210-0217 ----    Expansion unit (XT)
  947.  
  948. 0210    w    latch expansion bus data
  949.     r    verify expansion bus data
  950. 0211    w    clear wait, test latch
  951.     r    High byte data address
  952. 0212    r    Low byte data address
  953. 0213    w    0=enable,  1=disable expansion unit
  954. 0214    w    latch data  (receiver card port)
  955.     r    read data   (receiver card port)
  956. 0215    r    High byte of address, then Low byte   (receiver card port)
  957.  
  958.  
  959. -------------------------------------------------------------------------------
  960. 0240-0257 ----    RTC (alternate Real Time Clock for XT)     (1st at 0340-0357)
  961.         (used by TIMER.COM v1.2 which is the 'standard' timer program)
  962.  
  963. -------------------------------------------------------------------------------
  964. 0258-025F ----    Intel Above Board
  965.  
  966.  
  967. -------------------------------------------------------------------------------
  968. 0278-027E ----    parallel printer port, same as 0378 and 03BC
  969.  
  970. 0278    w    data port
  971. 0279    r/w    status port
  972. 027A    r/w    control port
  973.  
  974.  
  975. -------------------------------------------------------------------------------
  976. 02A2-02A3 ----    MSM58321RS clock
  977.  
  978.  
  979. -------------------------------------------------------------------------------
  980. 02B0-02DF ----    alternate EGA,    primary EGA at 03C0
  981.  
  982.  
  983. -------------------------------------------------------------------------------
  984. 02C0-02Cx ----    AST-clock
  985.  
  986.  
  987. -------------------------------------------------------------------------------
  988. 02E0-02EF ----    GPIB (General Purpose Interface Bus, IEEE 488 interface)
  989.         (GAB 0 on XT)
  990. 02E1        GPIB (adapter 0)
  991. 02E2
  992. 02E3
  993.  
  994. -------------------------------------------------------------------------------
  995. 02E0-02EF ----    data aquisition  (AT)
  996.  
  997. 02E2        data aquisition (adapter 0)
  998. 02E3        data aquisition (adapter 0)
  999.  
  1000.  
  1001. -------------------------------------------------------------------------------
  1002. 02E8-02EF ----    serial port, same as 02F8
  1003.  
  1004.  
  1005. -------------------------------------------------------------------------------
  1006. 02F8-02FF ----    serial port, same as 0378 and 03F8
  1007.  
  1008. 02F8    w    transmitter holding register
  1009. 02F8    r    receiver buffer register
  1010.     r/w    divisor latch, low byte   when DLAB=1
  1011. 02F9    r/w    divisor latch, high byte  when DLAB=1
  1012.     r/w    interrupt enable register when DLAB=0
  1013. 02FA    r    interrupt identification register
  1014. 02FB    r/w    line control register
  1015. 02FC    r/w    modem control register
  1016. 02FD    r    line status register
  1017. 02FF    r/w    scratch register
  1018.  
  1019.  
  1020. -------------------------------------------------------------------------------
  1021. 0300-031F ----    prototype cards
  1022.         Periscope hardware debugger
  1023.  
  1024.  
  1025. -------------------------------------------------------------------------------
  1026. 0300-030F ----    Philips CR-ROM player CM50
  1027. 0310-031F ----    Philips CR-ROM player CM50
  1028.  
  1029. -------------------------------------------------------------------------------
  1030. 0320-0323 ----    XT HDC 1   (Hard Disk Controller)
  1031.  
  1032. 0320    r/w    data register
  1033.  
  1034. 0321    w    reset controller
  1035.     r    read controller hardware status
  1036.          bit 7-6 = 0
  1037.          bit 5          logical unit number
  1038.          bit 4-2 = 0
  1039.          bit 1     = 0  no error
  1040.          bit 0     = 0 
  1041.  
  1042. 0322    r    read DIPswitch setting on XT controller card
  1043.     w    generate controller-select pulse
  1044. 0323    w    write pattern to DMA and INT mask register
  1045.  
  1046. 0324-0327 ----    XT HDC 2   (Hard Disk Controller)
  1047. 0328-032B ----    XT HDC 3   (Hard Disk Controller)
  1048. 032C-032F ----    XT HDC 4   (Hard Disk Controller)
  1049.  
  1050.  
  1051. -------------------------------------------------------------------------------
  1052. 0330-0331 ----    MIDI interface
  1053.  
  1054.  
  1055. -------------------------------------------------------------------------------
  1056. 0338      ----    AdLib soundblaster card
  1057.  
  1058.  
  1059. -------------------------------------------------------------------------------
  1060. 0330-033F ----    Philips CR-ROM player CM50
  1061. 0340-034F ----    Philips CR-ROM player CM50
  1062.  
  1063.  
  1064. -------------------------------------------------------------------------------
  1065. 0340-034F ----    SCSI (1st Small Computer System Interface) adapter
  1066.         (alternate at 0140-014F)
  1067.  
  1068.  
  1069. -------------------------------------------------------------------------------
  1070. 0340-0357 ----    RTC (1st Real Time Clock for XT), (alternate at 0240-0257)
  1071.         (used by TIMER.COM v1.2 which is the 'standard' timer program)
  1072.  
  1073. 0340    r/w    0.01 seconds  0-99
  1074. 0341    r/w    0.1 seconds   0-99
  1075. 0342    r/w    seconds       0-59
  1076. 0343    r/w    minutes       0-59
  1077. 0343    r/w    hours          0-23
  1078. 0345    r/w    day of week   1-7
  1079. 0346    r/w    day of month  1-31
  1080. 0347    r/w    month          1-12
  1081. 0348
  1082. 0349    r/w    year          0-99
  1083. 034A
  1084. 034B
  1085. 034C
  1086. 034D
  1087. 034E
  1088. 034F
  1089. 0350    r    status?
  1090. 0351    
  1091. 0352
  1092. 0353
  1093. 0354    r    status?
  1094. 0355
  1095. 0356
  1096. 0357
  1097.  
  1098.  
  1099. -------------------------------------------------------------------------------
  1100. 0348-0357 ----    DCA 3278
  1101.  
  1102.  
  1103. -------------------------------------------------------------------------------
  1104. 0360-036F ----    PC network (AT)
  1105. 0360-0367 ----    PC network (XT only)
  1106.  
  1107.  
  1108. -------------------------------------------------------------------------------
  1109. 0370-0377 ----    FDC 2  (2nd Floppy Disk Controller 8272)  same as 03F0
  1110.  
  1111. 0372    w    diskette controller DOR (Digital Output Register)
  1112. 0374    r    diskette controller status register
  1113. 0375    r/w    diskette controller data register
  1114. 0376    r/w    FIXED disk controller data register
  1115. 0377    r    diskette controller DIR (Digital Input Register)
  1116. 0377    w    select register for diskette data transfer rate
  1117.  
  1118.  
  1119. -------------------------------------------------------------------------------
  1120. 0378-037A ----    parallel printer port, same as 0278 and 03BC
  1121.  
  1122. 0378    w    data port
  1123. 0379    r/w    status port
  1124. 037A    r/w    control port
  1125.  
  1126.  
  1127. -------------------------------------------------------------------------------
  1128. 0380-038F ----    2nd Binary Synchronous Data Link Control adapter (see 03A0)
  1129.  
  1130. 0380    r/w     on board 8255 port A, internal/external sense
  1131. 0381    r/w     on board 8255 port B, external modem interface
  1132. 0382    r/w     on board 8255 port C, internal control and gating
  1133. 0383    r/w     on board 8255 mode register
  1134. 0384    r/w     on board 8253 channel square wave generator
  1135. 0385    r/w     on board 8253 channel 1 inactivity time-out
  1136. 0386    r/w     on board 8253 channel 2 inactivity time-out
  1137. 0387    r/w     on board 8253 mode register
  1138. 0388    r/w     on board 8273 read: status  write: command
  1139. 0389    r/w     on board 8273 read: response  write: parameter
  1140. 038A    r/w     on board 8273 transmit interrupt status
  1141. 038B    r/w     on board 8273 receiver interrupt status
  1142. 038C    r/w     on board 8273 data
  1143.  
  1144.  
  1145. -------------------------------------------------------------------------------
  1146. 0390-039F ----    Cluster adapter (AT)
  1147.  
  1148. 0390-0393    (adapter 0)    (XT)
  1149.  
  1150.  
  1151. -------------------------------------------------------------------------------
  1152. 03A0-03AF ----    1st SDLC (Binary Synchronous Data Link Control adapter)
  1153.  
  1154. 0380    r/w     on board 8255 port A, internal/external sense
  1155. 0381    r/w     on board 8255 port B, external modem interface
  1156. 0382    r/w     on board 8255 port C, internal control and gating
  1157. 0383    r/w     on board 8255 mode register
  1158. 0384    r/w     on board 8253 counter 0 unused
  1159. 0385    r/w     on board 8253 channel 1 inactivity time-out
  1160. 0386    r/w     on board 8253 channel 2 inactivity time-out
  1161. 0387    r/w     on board 8253 mode register
  1162. 0388    r/w     on board 8251 data
  1163. 0389    r/w     on board 8251 command/mode/status register
  1164.  
  1165.  
  1166. -------------------------------------------------------------------------------
  1167. 03B0-03BF ----    MDA  (Monochrome Display Adapter based on 6845)
  1168.  
  1169. 03B0        same as 03B4
  1170. 03B1        same as 03B5
  1171. 03B2        same as 03B4
  1172. 03B3        same as 03B5
  1173. 03B4    w    MDA CRT index register     (EGA/VGA)
  1174.         selects which register (0-11h) is to be accessed through 3B5
  1175. 03B5    r/w    MDA CRT data register     (EGA/VGA)
  1176.         selected by port 3B4. registers C-F may be read
  1177.          00  horizontal total
  1178.          01  horizontal displayed
  1179.          02  horizontal sync position
  1180.          03  horizontal sync pulse width
  1181.          04  vertical total
  1182.          05  vertical displayed
  1183.          06  vertical sync position
  1184.          07  vertical sunc pulse width
  1185.          08  interlace mode
  1186.          09  maximum scan lines
  1187.          0A  cursor start
  1188.          0B  cursor end
  1189.          0C  start address high
  1190.          0D  start address low
  1191.          0E  cursor location high
  1192.          0F  cursor location low
  1193.          10  light pen high
  1194.          11  light pen low
  1195. 03B6        same as 03B4
  1196. 03B7        same as 03B5
  1197. 03B8    r/w    MDA mode control register
  1198.          bit 7 not used
  1199.          bit 6 not used
  1200.          bit 5 enable blink
  1201.          bit 4 not used
  1202.          bit 3 video enable
  1203.          bit 2 not used
  1204.          bit 1 not used
  1205.          bit 0 high resolution mode
  1206.  
  1207. 03B9        reserved for color select register on color adapter
  1208.  
  1209. 03BA    r    CRT status register     EGA/VGA: input status 1 register
  1210.          bit 7-4 reserved
  1211.          bit 3     black/white video
  1212.          bit 2-1 reserved
  1213.          bit 0     horizontal drive
  1214.  
  1215. 03BA    w    EGA/VGA feature control register
  1216.  
  1217. 03BB        reserved for light pen strobe reset
  1218.  
  1219.  
  1220. -------------------------------------------------------------------------------
  1221. 03BC-03BF ----    parallel printer port, same as 0278 and 0378
  1222.  
  1223. 03BC    w    data port
  1224. 03BD    r/w    status port
  1225.          bit 7 = 0  busy
  1226.          bit 6 = 0  acknowledge
  1227.          bit 5 = 1  out of paper
  1228.          bit 4 = 1  printer is selected
  1229.          bit 3 = 0  error
  1230.          bit 2 = 0  IRQ has occurred
  1231.          bit 1-0    reserved
  1232.  
  1233. 03BE    r/w    control port
  1234.          bit 7-5    reserved
  1235.          bit 4 = 1  enable IRQ
  1236.          bit 3 = 1  select printer
  1237.          bit 2 = 0  initialize printer
  1238.          bit 1 = 1  automatic line feed
  1239.          bit 0 = 1  strobe
  1240.  
  1241.  
  1242. -------------------------------------------------------------------------------
  1243. 03BF    r/w    Hercules configuration switch register
  1244.          bit 7-2
  1245.          bit 1 = 0  disables upper 32K of graphics mode buffer
  1246.              1  enables upper 32K of graphics mode buffer
  1247.          bit 0 = 0  prevents graphics mode
  1248.              1  allows graphics mode
  1249.  
  1250. -------------------------------------------------------------------------------
  1251. 03C0-03CF ----    EGA  (1st Enhanced Graphics Adapter)    alternate at 02C0
  1252.  
  1253. 03C0    (r)/w    EGA VGA ATC index/data register
  1254. 03C1    r    VGA    other attribute register
  1255. 03C2    r    EGA VGA input status 0 register
  1256.     w    VGA    miscellaneous output register
  1257. 03C3    r/w    VGA    video subsystem enable
  1258. 03C4    w    EGA    TS index register
  1259.     r/w    VGA    sequencer index register
  1260. 03C5    w    EGA    TS data register
  1261.     r/w    VGA    other sequencer register
  1262. 03C6    r/w    VGA    PEL mask register
  1263. 03C7    r/w    VGA    PEL address read mode
  1264.     r    VGA    DAC state register
  1265. 03C8    r/w    VGA    PEL address write mode
  1266. 03C9    r/w    VGA    PEL data register
  1267. 03CA    w    EGA    graphics 2 position register
  1268.     r    VGA    feature control register
  1269. 03CC    w    EGA    graphics 1 position register
  1270.     r    VGA    miscellaneous output register
  1271. 03CE    w    EGA    GDC index register
  1272.     r/w    VGA    graphics address register
  1273. 03CF    w    EGA    GDC data register
  1274.     r/w    VGA    other graphics register
  1275.  
  1276.  
  1277. -------------------------------------------------------------------------------
  1278. 03D0-03DF ----    CGA   (Color Graphics Adapter)
  1279.  
  1280. 03D0        same as 03D4
  1281. 03D1        same as 03D5
  1282. 03D2        same as 03D4
  1283. 03D3        same as 03D5
  1284. 03D4    w    CRT (6845) index register   (EGA/VGA)
  1285.         selects which register (0-11h) is to be accessed through 3B5
  1286. 03D5    w    CRT (6845) data register    (EGA/VGA)
  1287.         selected by port 3B4. registers C-F may be read
  1288.          (for registers see at 3B5)
  1289. 03D6        same as 03D4
  1290. 03D7        same as 03D5
  1291. 03D8    r/w    CGA mode control register  (except PCjr)
  1292.          bit 7-6      not used
  1293.          bit 5     = 1  blink enabled
  1294.          bit 4     = 1  640*200 graphics mode
  1295.          bit 3     = 1  video enabled
  1296.          bit 2     = 1  monochrome signal
  1297.          bit 1     = 0  text mode
  1298.              = 1  320*200 graphics mode
  1299.          bit 0     = 0  40*25 text mode
  1300.              = 1  80*25 text mode
  1301.  
  1302. 03D9    r/w    CGA palette register
  1303.          bit 7-6      not used
  1304.          bit 5     = 0 active color set: red, green brown
  1305.              = 1 active color set: cyan, magenta, white
  1306.          bit 4         intense colors in graphics, background colors text
  1307.          bit 3         intense border in 40*25, intense background
  1308. 320*200
  1309.                  intense foreground in 640*200
  1310.          bit 2         red border in 40*25, red background in 320*200,
  1311.                  red foreground in 640*200
  1312.          bit 1         green border in 40*25, green background in
  1313. 320*200,
  1314.                  green foreground in 640*200
  1315.          bit 0         blue border in 40*25, blue background in 320*200,
  1316.                  blue foreground in 640*200
  1317.  
  1318. 03DA    r    CGA status register    EGA/VGA: input status 1 register
  1319.          bit 7-4     not used
  1320.          bit 3 = 1   in vertical retrace
  1321.          bit 2 = 1   light pen switch is off
  1322.          bit 1 = 1   positive edge from light pen has set trigger
  1323.          bit 0 = 0   do not use memory
  1324.                = 1   memory access without interfering with display
  1325.  
  1326. 03DA    w    EGA/VGA feature control register
  1327.  
  1328. 03DB    w    clear light pen latch
  1329. 03DC    r/w    preset licht pen latch
  1330.  
  1331. 03DF        CRT/CPU page register  PCjr only
  1332.  
  1333.  
  1334. -------------------------------------------------------------------------------
  1335. 03E8-03EF ----    serial port, same as 03F8
  1336.  
  1337.  
  1338. -------------------------------------------------------------------------------
  1339. 03F0-03F7 ----    FDC 1  (1st Floppy Disk Controller 8272)  same as 0370
  1340.  
  1341. 03F0        diskette controller status A (PS/2)
  1342.          bit 7     interrupt pending
  1343.          bit 6     second drive installed
  1344.          bit 5     step
  1345.          bit 4     track 0
  1346.          bit 3     head 1 select
  1347.          bit 2     index
  1348.          bit 1     write protect
  1349.          bit 0     direction
  1350.  
  1351. 03F1    r    diskette controller status B (PS/2)
  1352.          bit 7-6  reserved
  1353.          bit 5      drive select
  1354.          bit 4      write data
  1355.          bit 3      read data
  1356.          bit 2      write enable
  1357.          bit 1      motor enable 1
  1358.          bit 0      motor enable 0
  1359.  
  1360. floppy drive select (0=A 1=B .. )
  1361.  
  1362. 03F2    w    diskette controller DOR (Digital Output Register)
  1363.          bit 7-6    reserved PS/2
  1364.          bit 7 = 1  drive 3 motor enable
  1365.          bit 6 = 1  drive 2 motor enable
  1366.          bit 5 = 1  drive 1 motor enable
  1367.          bit 4 = 1  drive 0 motor enable
  1368.          bit 3 = 1  diskette DMA enable (reserved PS/2)
  1369.          bit 2 = 1  FDC enable    (controller reset)
  1370.                = 0  hold FDC at reset
  1371.          bit 1-0    drive select (0=A 1=B ..)
  1372.  
  1373. 03F4    r    diskette controller status register
  1374.          bit 7 = 1  data register is ready
  1375.          bit 6 = 1  transfer is from controller to system
  1376.              0  transfer is from system to controller
  1377.          bit 5 = 1  non-DMA mode
  1378.          bit 4 = 1  diskette controller busy
  1379.          bit 3 = 1  drive 3 busy (reserved on PS/2)
  1380.          bit 2 = 1  drive 2 busy (reserved on PS/2)
  1381.          bit 1 = 1  drive 1 busy
  1382.          bit 0 = 1  drive 0 busy
  1383.  
  1384. 03F5    r    diskette command status register 0
  1385.          bit 7-6      last command status
  1386.              = 00  command terminated successfully
  1387.              = 01  command terminated abnormally
  1388.              = 10  invalid command
  1389.              = 11  terminated abnormally by change in ready signal
  1390.          bit 5     = 1   seek completed
  1391.          bit 4     = 1  equipment check occurred after error
  1392.          bit 3     = 1  not ready
  1393.          bit 2     = 1  head number at interrupt
  1394.          bit 1-0 = 1  unit select (0=A 1=B .. )
  1395.                   (on PS/2    01=A  10=B)
  1396.  
  1397.         status register 1
  1398.          bit 7        end of cylinder; sector# greater then sectors/track
  1399.          bit 6 = 0
  1400.          bit 5 = 1  CRC error in ID or data field
  1401.          bit 4 = 1  overrun
  1402.          bit 3 = 0
  1403.          bit 2 = 1  sector ID not found
  1404.          bit 1 = 1  write protect detected during write
  1405.          bit 0 = 1  ID address mark not found
  1406.  
  1407.         status register 2
  1408.          bit 7 = 0
  1409.          bit 6 = 1  deleted Data Eddress Mark detected
  1410.          bit 5 = 1  CRC error in data
  1411.          bit 4 = 1  wrong cylinder detected
  1412.          bit 3 = 1  scan command equal condition satisfied
  1413.          bit 2 = 1  scan command failed, sector not found
  1414.          bit 1 = 1  bad cylinder, ID not found
  1415.          bit 0 = 1  missing Data Address Mark 
  1416.  
  1417.         status register 3
  1418.          bit 7        fault status signal
  1419.          bit 6        write protect status
  1420.          bit 5        ready status
  1421.          bit 4        track zero status
  1422.          bit 3        two sided status signal
  1423.          bit 2        side select (head select)
  1424.          bit 1-0    unit select (0=A 1=B .. )
  1425.  
  1426. 03F6    r/w    FIXED disk controller data register
  1427.          bit 7-4    reserved
  1428.          bit 3 = 0  reduce write current
  1429.              1  head select 3 enable
  1430.          bit 2 = 1  disk reset enable
  1431.              0  disk reset disable
  1432.          bit 1 = 0  disk initialization enable
  1433.              1  disk initialization disable
  1434.          bit 0        reserved
  1435.  
  1436. 03F7    r    diskette controller DIR (Digital Input Register)
  1437.          bit 7 = 1 diskette change
  1438.  
  1439.          bit 6       FIXED DISK write gate
  1440.          bit 5       FIXED DISK head select 3 / reduced write current
  1441.          bit 4       FIXED DISK head select 2
  1442.          bit 3       FIXED DISK head select 1
  1443.          bit 2       FIXED DISK head select 0
  1444.          bit 1       FIXED DISK drive 1 select
  1445.          bit 0       FIXED DISK drive 0 select   conflicts with:
  1446.  
  1447.          bit 0       diskette high density select
  1448.  
  1449. 03F7    w    select register for diskette data transfer rate
  1450.          bit 7-2       reserved
  1451.          bit 1-0 = 00  500 Kb/S mode
  1452.              = 01  300 Kb/S mode
  1453.              = 10  250 Kb/S mode
  1454.              = 11  reserved
  1455.  
  1456.  
  1457. -------------------------------------------------------------------------------
  1458. 03F8-03FF ----    serial port (8250, 8251, 16450, 16550), same as 02F8 and 0378
  1459.  
  1460. 03F8    w    serial port, transmitter holding register, which contains the
  1461.         character to be sent. Bit 0 is sent first.
  1462.          bit 7-0   data bits when DLAB=0 (Divisor Latch Access Bit)
  1463.     r    receiver buffer register, which contains the received character
  1464.         Bit 0 is received first
  1465.          bit 7-0   data bits when DLAB=0 (Divisor Latch Access Bit)
  1466.     r/w    divisor latch low byte when DLAB=1
  1467.  
  1468. 03F9    r/w    divisor latch high byte when DLAB=1
  1469.     r/w    interrupt enable register when DLAB=0
  1470.          bits 7-4   reserved
  1471.          bit 3 = 1  modem-status interrupt enable
  1472.          bit 2 = 1  receiver-line-status interrupt enable
  1473.          bit 1 = 1  transmitter-holding-register empty interrupt enable
  1474.          bit 0 = 1  received-data-avail.int. enable (and 16550 timeout)
  1475.  
  1476.           - 16550 will interrupt if data axists in the FIFO and isn't read
  1477.         within the time it takes to receive four bytes or if no data is
  1478.         received within the time it takes to receive four bytes
  1479.  
  1480. 03FA    r    interrupt identification register. Information about a pending
  1481.         interrupt is stored here. When the ID register is addressed,
  1482.         the highest priority interrupt is held, and no other interrupts
  1483.         are acknowledged until the CPU services that interrupt.
  1484.          bit 7-6 = 00  reserved on 8250, 8251, 16450
  1485.              = 11  if FIFO queues are enabled (16550 only)
  1486.          bit 5-4 = 0 reserved
  1487.          bit 3     = 0 reserved  8250, 16450
  1488.              = 1 16550  timeout int. pending
  1489.          bit 2-1 identify pending interrupt with the highest priority
  1490.           = 11    receiver line status interrupt. priority=highest
  1491.           = 10    received data available register interrupt. pr.=second
  1492.           = 01    transmitter holding register empty interrupt. pr.=third
  1493.           = 00    modem status interrupt. priority=fourth
  1494.          bit 0 = 0  interrupt pending. contents of register can be used
  1495.                 as a pointer to the appropriate int.service routine
  1496.              1  no interrupt pending
  1497.  
  1498.           - interrupt pending flag uses reverse logic, 0=pending, 1=none
  1499.           - interrupt will occur if any of the line status bits are set
  1500.           - THRE bit is set when THRE register is emptied into the TSR
  1501.  
  1502.  
  1503. 03FA    w    16650 FCR  (FIFO Control Register)
  1504.          bit 7-6 = 00  1 byte
  1505.              = 01  4 bytes
  1506.              = 10  8 bytes
  1507.              = 11 14 bytes
  1508.          bit 5-4 = 00 reserved
  1509.          bit 3     = 1  change RXRDY  TXRDY pins from mode 0 to mode 1
  1510.          bit 2     = 1  clear XMIT FIFO
  1511.          bit 1     = 1  clear RCVR FIFO
  1512.          bit 0     = 1  enable clear XMIT and RCVR FIFO queues
  1513.  
  1514.           - bit 0 must be set in ordewr to write to other FCR bits
  1515.           - bit 1 when set    the RCVR FIFO is cleared and this bit is reset
  1516.          the receiver shift register is not cleared
  1517.           - bit 2 when set    the XMIT FIFO is cleared and this bit is reset
  1518.          the transmit shift register is not cleared
  1519.  
  1520. 03FB    r/w    line control register
  1521.          bit 7 = 1  divisor latch access bit (DLAB)
  1522.              0  receiver buffer, transmitter holding, or interrupt
  1523.                 enable register access
  1524.          bit 6 = 1  set break enable. serial ouput is forced to spacing
  1525.                 state and remains there.
  1526.          bit 5 =    stick parity
  1527.          bit 4 = 1  even parity select
  1528.          bit 3 =    parity enable
  1529.              1  even number of ones are sent and checked in the 
  1530.                 data word bits and parity bit
  1531.              0  odd number of ones are sent and checked
  1532.          bit 2 = 0  one stop bit
  1533.              1  zero stop bit
  1534.          bit 1-0 00 word length is 5 bits
  1535.              01 word length is 6 bits
  1536.              10 word length is 7 bits
  1537.              11 word length is 8 bits
  1538.  
  1539. 03FC    r/w    modem control register
  1540.          bit 7-5 = 0  reserved
  1541.          bit 4 = 1  loopback mode for diagnostic testing of serial port
  1542.                 output of transmitter shift register is looped back
  1543.                 to receiver shift register input. In this mode
  1544.                 transmitted data is received immediately so that
  1545.                 the CPU can verify the transmit data/receive data
  1546.                 serial port paths.
  1547.          bit 3 = 1  auxiliary user-designated output 2
  1548.          bit 2 = 1  auxiliary user-designated output 1
  1549.          bit 1 = 1  force request-to-send active
  1550.          bit 0 = 1  force data-terminal-ready active
  1551.  
  1552. 03FD    r    line status register
  1553.          bit 7 = 0  reserved
  1554.          bit 6 = 1  transmitter shift and holding registers empty
  1555.          bit 5 = 1  transmitter holding register empty. Controller is
  1556.                 ready toaccept a new character to send.
  1557.          bit 4 = 1  break interrupt. the received data input is held in
  1558.                 in the zero bit state longer than the time of start
  1559.                 bit + data bits + parity bit + stop bits.
  1560.          bit 3 = 1  framing error. the stop bit that follows the last
  1561.                 parity or data bit is a zero bit.
  1562.          bit 2 = 1  parity error. Character has wrong parity
  1563.          bit 1 = 1  overrun error. a character was sent to the receiver
  1564.                 buffer before the previous character in the buffer
  1565.                 could be read. This destroys the previous
  1566.                 character.
  1567.          bit 0 = 1  data ready. a complete incoming character has been
  1568.                 received and sent to the receiver buffer register.
  1569.  
  1570. 03FE    r    modem status register
  1571.          bit 7 = 1  data carrier detect
  1572.          bit 6 = 1  ring indicator
  1573.          bit 5 = 1  data set ready
  1574.          bit 4 = 1  clear to send
  1575.          bit 3 = 1  delta data carrier detect
  1576.          bit 2 = 1  trailing edge ring indicator
  1577.          bit 1 = 1  delta data set ready
  1578.          bit 0 = 1  delta clear to send
  1579.  
  1580.           - bits 0-3 are reset when the CPU reads the MSR
  1581.           - bit 4 is the Modem Control Register RTS during loopback test
  1582.           - bit 5 is the Modem Control Register DTR during loopback test
  1583.           - bit 6 is the Modem Control Register OUT1 during loopback test
  1584.           - bit 7 is the Modem Control Register OUT2 during loopback test
  1585.  
  1586. 03FF    r/w    scratch register
  1587.  
  1588. -------------------------------------------------------------------------------
  1589.  
  1590.         Adresses above 03FF apply to EISA machines only !
  1591.  
  1592.              1000-1FFF    slot 1 EISA
  1593.              2000-2FFF    slot 2 EISA
  1594.              3000-3FFF    slot 3 EISA
  1595.              4000-4FFF    slot 4 EISA
  1596.              5000-5FFF    slot 5 EISA
  1597.              6000-6FFF    slot 6 EISA
  1598.              7000-7FFF    slot 7 EISA
  1599.  
  1600.  
  1601. -------------------------------------------------------------------------------
  1602. 0401-04D6 ----    used by EISA systems only
  1603.  
  1604. 0401    r/w    DMA channel 0 word count byte 2 (high)
  1605. 0403    r/w    DMA channel 1 word count byte 2 (high)
  1606. 0405    r/w    DMA channel 2 word count byte 2 (high)
  1607. 0407    r/w    DMA channel 3 word count byte 2 (high)
  1608.  
  1609. 040A    w    extended DMA chaining mode register, channels 0-3
  1610.          bit 7-5      reserved
  1611.          bit 4     = 0  generates IRQ13
  1612.              = 1  generates terminal count
  1613.          bit 3     = 0  do not start chaining
  1614.              = 1  programming complete
  1615.          bit 2     = 0  disable buffer chaining mode (default)
  1616.              = 1  enable buffer chaining mode
  1617.          bit 1-0      DMA channel select
  1618.  
  1619. 040A    r    channel interrupt (IRQ13) status register
  1620.          bit 7-5  interrupt on channels 7-5
  1621.          bit 4      reserved
  1622.          bit 3-0  interrupt on channels 3-0
  1623.  
  1624. 040B    w    DMA extended mode register for channels 3-0.
  1625.         bit settings same as 04D6
  1626.          bit 7     = 0  enable stop register
  1627.          bit 6     = 0  terminal count is an output for this channel
  1628. (default)
  1629.          bit 5-4      DMA cycle timing
  1630.              = 00 ISA-compatible (default)
  1631.              = 01 type A timing mode
  1632.              = 10 type B timing mode
  1633.              = 11 burst DMA mode
  1634.          bit 3-2      Address mode
  1635.              = 00 8-bit I/O, count by bytes (default)
  1636.              = 01 16-bit I/O, count by words, address shifted
  1637.              = 10 32-bit I/O, count by bytes
  1638.              = 11 16-bit I/O, count by bytes
  1639.          bit 1-0      DMA channel select
  1640.  
  1641.  
  1642. -------------------------------------------------------------------------------
  1643. 0461    r/w    Extended NMI status/control register
  1644.          bit 7 = 1  NMI pending from fail-safe timer (read only)
  1645.          bit 6 = 1  NMI pending from bus timeout NMI status (read
  1646. only)
  1647.          bit 5 = 1  NMI pending (read only)
  1648.          bit 4        reserved
  1649.          bit 3 = 1  bus timeout NMI enable (read/write)
  1650.          bit 2 = 1  fail-safe NMI enable (read/write)
  1651.          bit 1 = 1  NMI I/O port enable (read/write)
  1652.          bit 0        RSTDRV. bus reset (read/write)
  1653.                = 0  normal bus reset operation
  1654.                = 1  reset bus asserted
  1655.  
  1656. 0462    w    Software NMI register. writing to this register causes an NMI
  1657.         if NMI's are enabled
  1658.          bit 7 = 1  generates an NMI
  1659.  
  1660. 0464    r    bus master status latch register (slots 1-8). identifies the
  1661.         last bus master that had control of the bus
  1662.          bit 7 = 0  slot 8 had control last
  1663.          bit 6 = 0  slot 7 had control last
  1664.          bit 5 = 0  slot 6 had control last
  1665.          bit 4 = 0  slot 5 had control last
  1666.          bit 3 = 0  slot 4 had control last
  1667.          bit 2 = 0  slot 3 had control last
  1668.          bit 1 = 0  slot 2 had control last
  1669.          bit 0 = 0  slot 1 had control last
  1670.  
  1671. 0465    r    bus master status latch register (slots 9-16)
  1672.          bit 7 = 0  slot 16 had control last
  1673.          bit 6 = 0  slot 15 had control last
  1674.          bit 5 = 0  slot 14 had control last
  1675.          bit 4 = 0  slot 13 had control last
  1676.          bit 3 = 0  slot 12 had control last
  1677.          bit 2 = 0  slot 11 had control last
  1678.          bit 1 = 0  slot 10 had control last
  1679.          bit 0 = 0  slot 9  had control last
  1680.  
  1681.  
  1682. -------------------------------------------------------------------------------
  1683. 0481    r/w    DMA channel 2 address byte 3 (high)
  1684. 0482    r/w    DMA channel 3 address byte 3 (high)
  1685. 0483    r/w    DMA channel 1 address byte 3 (high)
  1686. 0487    r/w    DMA channel 0 address byte 3 (high)
  1687. 0489    r/w    DMA channel 6 address byte 3 (high)
  1688. 048A    r/w    DMA channel 7 address byte 3 (high)
  1689. 048B    r/w    DMA channel 5 address byte 3 (high)
  1690.  
  1691. 04C6    r/w    DMA channel 5 word count byte 2 (high)
  1692. 04CA    r/w    DMA channel 6 word count byte 2 (high)
  1693. 04CE    r/w    DMA channel 7 word count byte 2 (high)
  1694.  
  1695.  
  1696. -------------------------------------------------------------------------------
  1697. 04D0    w    IRQ 0-7 interrupt edge/level registers
  1698.          bit 7 = 1  IRQ 7 is level sensitive
  1699.          bit 6 = 1  IRQ 6 is level sensitive
  1700.          bit 5 = 1  IRQ 5 is level sensitive
  1701.          bit 4 = 1  IRQ 4 is level sensitive
  1702.          bit 3 = 1  IRQ 3 is level sensitive
  1703.          bit 2-0    reserved
  1704.  
  1705. 04D1    w    IRQ 8-15 interrupt edge/level registers
  1706.          bit 7 = 1  IRQ 15 is level sensitive
  1707.          bit 6 = 1  IRQ 14 is level sensitive
  1708.          bit 5 = 1  reserved
  1709.          bit 4 = 1  IRQ 12 is level sensitive
  1710.          bit 3 = 1  IRQ 11 is level sensitive
  1711.          bit 2 = 1  IRQ 10 is level sensitive
  1712.          bit 1 = 1  IRQ 9  is level sensitive
  1713.          bit 0        reserved
  1714.  
  1715. 04D4    w    extended DMA chaining mode register, channels 4-7
  1716.          bit 7-5 = 0  reserved
  1717.          bit 4     = 0  generates IRQ 13
  1718.              = 1  generates terminal count
  1719.          bit 3     = 0  do not start chaining
  1720.              = 1  programming complete
  1721.          bit 2     = 0  disable buffer chaining mode (default)
  1722.              = 1  enable buffer chaining mode
  1723.          bit 1-0      DMA channel select
  1724.  
  1725. 04D6    w    DMA extended mode register for channels 4-7
  1726.         bit settings same as 04B
  1727.          bit 7     = 0  enable stop register
  1728.          bit 6     = 0  terminal count is an output for this channel
  1729. (default)
  1730.          bit 5-4      DMA cycle timing
  1731.              = 00 ISA-compatible (default)
  1732.              = 01 type A timing mode
  1733.              = 10 type B timing mode
  1734.              = 11 burst DMA mode
  1735.          bit 3-2      Address mode
  1736.              = 00 8-bit I/O, count by bytes (default)
  1737.              = 01 16-bit I/O, count by words, address shifted
  1738.              = 10 32-bit I/O, count by bytes
  1739.              = 11 16-bit I/O, count by bytes
  1740.          bit 1-0      DMA channel select
  1741.  
  1742.  
  1743. -------------------------------------------------------------------------------
  1744. 0620-0627 ----    PC network (adapter 1)
  1745. 0628-062F ----    PC network (adapter 2)
  1746.  
  1747.  
  1748. -------------------------------------------------------------------------------
  1749. 06E2-06E3 ----    data aquisition (adapter 1)
  1750.  
  1751.  
  1752. -------------------------------------------------------------------------------
  1753. 0790-0793 ----    cluster (adapter 1)
  1754.  
  1755.  
  1756. -------------------------------------------------------------------------------
  1757. 0800-08FF ----    I/O port access registers for extended CMOS RAM or SRAM
  1758.         (256 bytes at a time)
  1759.         Sometimes plain text can be seen here.
  1760.  
  1761.  
  1762. -------------------------------------------------------------------------------
  1763. 0A20-0A23 ----    Token Ring (adapter 1)
  1764. 0A24-0A27 ----    Token Ring (adapter 2)
  1765.  
  1766.  
  1767. -------------------------------------------------------------------------------
  1768. 0AE2-0AE3 ----    cluster (adapter 2)
  1769. 0B90-0B93 ----    cluster (adapter 2)
  1770.  
  1771.  
  1772. -------------------------------------------------------------------------------
  1773. 0C00    r/w    page register to write to SRAM or I/O
  1774.  
  1775.  
  1776. -------------------------------------------------------------------------------
  1777. 0C80-0C83 ----    system board ID registers
  1778.  
  1779.  
  1780. -------------------------------------------------------------------------------
  1781. 1390-1393 ----    cluster (adapter 3)
  1782.  
  1783.  
  1784. -------------------------------------------------------------------------------
  1785. 2100-210F ----    IBM XGA (eXtended Graphics Adapter  8514/A)
  1786. 2110-211F ----    IBM XGA (eXtended Graphics Adapter  8514/A)
  1787. 2120-212F ----    IBM XGA (eXtended Graphics Adapter  8514/A)
  1788. 2130-213F ----    IBM XGA (eXtended Graphics Adapter  8514/A)
  1789. 2140-214F ----    IBM XGA (eXtended Graphics Adapter  8514/A)
  1790. 2150-215F ----    IBM XGA (eXtended Graphics Adapter  8514/A)
  1791. 2160-216F ----    IBM XGA (eXtended Graphics Adapter  8514/A)
  1792. 2150-217F ----    IBM XGA (eXtended Graphics Adapter  8514/A)
  1793.  
  1794.  
  1795. -------------------------------------------------------------------------------
  1796. 2390-2393 ----    cluster (adapter 4)
  1797.  
  1798.  
  1799. -------------------------------------------------------------------------------
  1800. 3220-3227 ----    serial port 3, description same as 03F8
  1801. 3228-322F ----    serial port 4, description same as 03F8
  1802.  
  1803.  
  1804. -------------------------------------------------------------------------------
  1805. 3540-354F ----    IBM SCSI (Small Computer System Interface) adapter
  1806. 3550-355F ----    IBM SCSI (Small Computer System Interface) adapter
  1807. 3560-356F ----    IBM SCSI (Small Computer System Interface) adapter
  1808. 3570-357F ----    IBM SCSI (Small Computer System Interface) adapter
  1809.  
  1810.  
  1811. -------------------------------------------------------------------------------
  1812. 4220-4227 ----    serial port, description same as 03F8
  1813. 4228-422F ----    serial port, description same as 03F8
  1814.  
  1815.  
  1816. -------------------------------------------------------------------------------
  1817. 42E0-42EF ----    GPIB (General Purpose Interface Bus, IEEE 488 interface)
  1818.  
  1819. 42E1    r/w    GPIB (adapter 2)
  1820.  
  1821.  
  1822. -------------------------------------------------------------------------------
  1823. 5220-5227 ----    serial port, description same as 03F8
  1824. 5228-522F ----    serial port, description same as 03F8
  1825.  
  1826.  
  1827. -------------------------------------------------------------------------------
  1828. 62E0-62EF ----    GPIB (General Purpose Interface Bus, IEEE 488 interface)
  1829.  
  1830. 62E1    r/w    GPIB (adapter 3)
  1831.  
  1832.  
  1833. -------------------------------------------------------------------------------
  1834. 82E0-82EF ----    GPIB (General Purpose Interface Bus, IEEE 488 interface)
  1835.  
  1836. 82E1    r/w    GPIB (adapter 4)
  1837.  
  1838.  
  1839. -------------------------------------------------------------------------------
  1840. 82F8-82FF ----    serial port, description same as 03F8
  1841. 83F8-83FF ----    serial port, description same as 03F8
  1842.  
  1843.  
  1844. -------------------------------------------------------------------------------
  1845. A220      ????    soundblaster support in AMI Hi-Flex BIOS  ????
  1846.  
  1847.  
  1848. -------------------------------------------------------------------------------
  1849. A2E0-A2EF ----    GPIB (General Purpose Interface Bus, IEEE 488 interface)
  1850.  
  1851. A2E1    r/w    GPIB (adapter 5)
  1852.  
  1853.  
  1854. -------------------------------------------------------------------------------
  1855. AFFF    r/w    plane 0-3 system latch (video register)
  1856.  
  1857. -------------------------------------------------------------------------------
  1858. B220-B227 ----    serial port, description same as 03F8
  1859. B228-B22F ----    serial port, description same as 03F8
  1860.  
  1861.  
  1862. -------------------------------------------------------------------------------
  1863. C220-C227 ----    serial port, description same as 03F8
  1864. C228-C22F ----    serial port, description same as 03F8
  1865.  
  1866.  
  1867. -------------------------------------------------------------------------------
  1868. D220-D227 ----    serial port, description same as 03F8
  1869. D228-D22F ----    serial port, description same as 03F8
  1870.  
  1871.  
  1872. -------------------------------------------------------------------------------
  1873. C2E0-C2EF ----    GPIB (General Purpose Interface Bus, IEEE 488 interface)
  1874.  
  1875. C2E1    r/w    GPIB (adapter 6)
  1876.  
  1877.  
  1878. -------------------------------------------------------------------------------
  1879. E2E0-E2EF ----    GPIB (General Purpose Interface Bus, IEEE 488 interface)
  1880.  
  1881. E2E1    r/w    GPIB (adapter 7)
  1882.  
  1883.  
  1884. -------------------------------------------------------------------------------
  1885.